package net.csdn.business.common.domain.request.webhook;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @ClassName NewWebhookConfigDTO
 * @Description 新增webhook配置信息对象DTO
 * @Author zhangyl
 * @Date 2023/4/23 16:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class NewWebhookConfigDTO implements Serializable
{

    private static final long serialVersionUID = 1L;

    /** 组织、项目应用的ID */
    @NotBlank(message = "fromId不能为空")
    private String fromId;
    /** webhook通知url */
    @NotBlank(message = "notifyUrl不能为空")
    private String notifyUrl;
    /** 加密密钥 */
    private String secret;
    /** 是否启用ssl验证：1：启用 0：未启用 */
    private Boolean enableSslVeri=true;
    /** 是否激活：1：激活 0：未激活 */
    private Boolean isActive=true;
    /** 请求体类型：1：application/json 2：application/x-www-form-urlencoded */
    @NotNull(message = "reqBodyType不能为空")
    @Min(value=1,message = "reqBodyType合法值为1-2")
    @Max(value=2,message = "reqBodyType合法值为1-2")
    private Integer reqBodyType;
    /** 主体类型：1：组织 2：项目 3：应用 */
    @NotNull(message = "type不能为空")
    @Min(value=1,message = "type合法值为1-3")
    @Max(value=3,message = "type合法值为1-3")
    private Integer type;
    /** 当前操作人id */
    //@NotBlank(message = "userId不能为空")
    private String userId;
    /** webhook对应的事件列表 */
    @NotNull(message = "events事件不能为空")
    private List<String> events;

}
